Skip to content

Per-row Select button + preview horizontal-overflow fix#51

Merged
eliothedeman merged 2 commits intomainfrom
eliot/practical-gagarin-44ce33
Apr 23, 2026
Merged

Per-row Select button + preview horizontal-overflow fix#51
eliothedeman merged 2 commits intomainfrom
eliot/practical-gagarin-44ce33

Conversation

@eliothedeman
Copy link
Copy Markdown
Collaborator

Summary

  • Claude/Pi browse lists: replace the checkbox multi-select + footer "Preview →" with a per-row Select → button that derives that single session and jumps straight to Preview. Merging traces isn't well supported today, so the multi-select had no real payoff — and requiring users to scroll past a page of conversations to reach a footer button was the immediate annoyance.
  • Drop dead state: selected: Record<string, Record<string, true>> and the ClaudeToggleSession / PiToggleSession messages are gone; ClaudeDerive / PiDerive now carry { path, sid } inline.
  • Preview transcript overflow (separate commit): .preview-body--split used grid-template-columns: 380px 1fr. Grid 1fr defaults to minmax(auto, 1fr), so an unbreakable string in the transcript (long file path, pre block) would grow the right track past the viewport and put the whole preview page into horizontal scroll. Changed to minmax(0, 1fr) so the column is capped at the available width and .chat-view's overflow-x: hidden can clip properly. Pre-existing on main — surfaced while reviewing the new flow.

Notes for reviewer

  • Grid layout inside each session row was crushed at first (content landed in the 18px marker track); fixed by keeping the empty leading row-card__marker span so the title + button fall in the 1fr / auto cells.
  • Visible backend surface didn't change — derive_claude / derive_pi still take { projectPath, sessionIds, includeThinking }; we just always send a one-element sessionIds.

Test plan

  • cargo tauri dev, open Claude tab on Home, click Select → on a session → preview opens with that one session.
  • Same for Pi tab.
  • Open a long Claude conversation in Preview → no horizontal scrollbar on the page; transcript wraps within the right pane.
  • svelte-check clean; cargo check -p toolpath-desktop clean.

The multi-select UX forced users to scroll to a footer Preview button to
advance; merging traces isn't well supported yet, so the checkboxes had
no real payoff. Each Claude/Pi session row now has a per-row "Select →"
button that derives that one session and jumps straight to Preview.

Drops the now-unused `selected` state, `ClaudeToggleSession`/
`PiToggleSession` messages, and the footer bar. `ClaudeDerive`/`PiDerive`
now carry `{ path, sid }` inline.
…l scroll

`.preview-body--split` used `grid-template-columns: 380px 1fr`. Grid 1fr
defaults to `minmax(auto, 1fr)`, so an unbreakable string in the
transcript (a long file path, a wide pre block) would grow the right
track past the viewport and drag the whole preview page into horizontal
scroll. Switch to `minmax(0, 1fr)` so the column is capped at the
available width and `.chat-view`'s `overflow-x: hidden` can actually
clip overflowing bubbles.
@github-actions
Copy link
Copy Markdown

🔍 Preview deployed: https://fe534ab7.toolpath.pages.dev

@eliothedeman eliothedeman merged commit 1e9fe98 into main Apr 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant